package com.yida.gwj.api.domain.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description 总账查询参数
 * @Author wws
 * @Date 2023-03-02
 */
@ApiModel("总账查询参数")
public class RemoteGwjFinanceAccountDetailRequest {

    @ApiModelProperty("业务主键")
    @NotNull(message = "业务主键不能为空")
    private Long bizId;

    @ApiModelProperty("业务流水编号")
    private Long bizNum;

    @ApiModelProperty("银行分类帐帐号")
    @Excel(name = "银行分类帐帐号")
    private String ledgerAccount;


    @ApiModelProperty("对账时间")
    private Date checkTime;


    @ApiModelProperty("收入金额")
    private BigDecimal incomeMoney;

    @ApiModelProperty("支出金额")
    private BigDecimal payMoney;

    @ApiModelProperty("对账方式")
    private String checkType;


    @ApiModelProperty("交易发生时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dealTime;

    @ApiModelProperty("交易编号")
    private String dealId;

    @ApiModelProperty("账单编号")
    private String billId;

    @ApiModelProperty("对账状态(0:未对账，1:对账成功，2,对账失败)")
    private String checkStatus;

    /**
     * 业务标识表ID
     */
    @ApiModelProperty(value = "业务标识表ID")
    private Integer bizFlagId;

    private Integer pageNum;

    private Integer pageSize;

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getBizFlagId() {
        return bizFlagId;
    }

    public void setBizFlagId(Integer bizFlagId) {
        this.bizFlagId = bizFlagId;
    }

    public Long getBizId() {
        return bizId;
    }

    public void setBizId(Long bizId) {
        this.bizId = bizId;
    }

    public Long getBizNum() {
        return bizNum;
    }

    public void setBizNum(Long bizNum) {
        this.bizNum = bizNum;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public BigDecimal getIncomeMoney() {
        return incomeMoney;
    }

    public void setIncomeMoney(BigDecimal incomeMoney) {
        this.incomeMoney = incomeMoney;
    }

    public BigDecimal getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(BigDecimal payMoney) {
        this.payMoney = payMoney;
    }

    public String getCheckType() {
        return checkType;
    }

    public void setCheckType(String checkType) {
        this.checkType = checkType;
    }

    public Date getDealTime() {
        return dealTime;
    }

    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }

    public String getDealId() {
        return dealId;
    }

    public void setDealId(String dealId) {
        this.dealId = dealId;
    }

    public String getBillId() {
        return billId;
    }

    public void setBillId(String billId) {
        this.billId = billId;
    }

    public String getCheckStatus() {
        return checkStatus;
    }

    public void setCheckStatus(String checkStatus) {
        this.checkStatus = checkStatus;
    }

    public String getLedgerAccount() {
        return ledgerAccount;
    }

    public void setLedgerAccount(String ledgerAccount) {
        this.ledgerAccount = ledgerAccount;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("GwjFinanceAccountDetailRequest{");
        sb.append("bizId=").append(bizId);
        sb.append(", bizNum=").append(bizNum);
        sb.append(", ledgerAccount='").append(ledgerAccount).append('\'');
        sb.append(", checkTime=").append(checkTime);
        sb.append(", incomeMoney=").append(incomeMoney);
        sb.append(", payMoney=").append(payMoney);
        sb.append(", checkType='").append(checkType).append('\'');
        sb.append(", dealTime=").append(dealTime);
        sb.append(", dealId='").append(dealId).append('\'');
        sb.append(", billId='").append(billId).append('\'');
        sb.append(", checkStatus='").append(checkStatus).append('\'');
        sb.append('}');
        return sb.toString();
    }
}
